﻿using Black.Minecraft.Editor.Models;
using Black.Minecraft.Editor.ViewModels.Core;

namespace Black.Minecraft.Editor.ViewModels.DataModels
{
    /// <summary>
    /// DataModel pour la gestion des serveurs personnalisées
    /// </summary>
    public class ServerDefinitionDataModel : BaseViewModel
    {
        #region Propriétés

        /// <summary>
        /// Obtient ou définit le répertoire du serveur
        /// </summary>
        public string Directory
        {
            get
            {
                return (this._data.Directory);
            }
            set
            {
                if (this._data.Directory != value)
                {
                    this._data.Directory = value;
                    this.OnPropertyChanged();
                }
            }
        }

        /// <summary>
        /// Obtient ou définit le nom du serveur
        /// </summary>
        public string Name
        {
            get
            {
                return (this._data.Name);
            }
            set
            {
                if (this._data.Name != value)
                {
                    this._data.Name = value;
                    this.OnPropertyChanged();
                }
            }
        }

        #endregion

        #region Variables d'instances

        private ServerDefinition _data;

        #endregion

        #region Constructeurs

        /// <summary>
        /// Constructeur de la classe
        /// </summary>
        /// <param name="data">Source de donnée</param>
        public ServerDefinitionDataModel(ServerDefinition data)
            : base()
        {
            this._data = data;
        }

        #endregion

        #region Fonctions publiques

        /// <summary>
        /// Récupère la source de donnée
        /// </summary>
        /// <returns></returns>
        public ServerDefinition GetData()
        {
            return (this._data);
        }

        #endregion
    }
}
